As one of protocols that are used as a standard in the Internet, there is a transmission control protocol (TCP). Since reliability of communication in the TCP is obtained by an acknowledgement (ACK), the reliability of communication is high as compared with a user datagram protocol (UDP), whereas the throughput is low. In order to compensate the problem, in the TCP, flow control is performed using “window size”. Here, “window size” is an amount of data that is allowed to be transmitted at a time without waiting for an ACK. The window size is notified from a reception device to a transmission device, and the transmission device may transmit a plurality of data packets at a time using the window size as an upper limit without waiting for an ACK. Therefore, by using the window size, a reduction in the throughput due to employment of an ACK may be suppressed. In addition, the window size is determined based on a free space of a reception buffer of the reception device, and the window size is reduced as the free space of the reception buffer becomes smaller. As a result, a reduction in the throughput is suppressed while overflow of the reception buffer is avoided.
Japanese Laid-open Patent Publication No. 2005-277704, Japanese Laid-open Patent Publication No. 2006-101339, and Japanese Laid-open Patent Publication No. 2006-211015 are related arts.
Here, in the transmission of a data packet, the transmission device stores generated data packets in a layer 2 transmission buffer once, and transmits the stored data packets to a network. Therefore, when the large amount of data packets flows into the layer 2 transmission buffer at a time, and the transmission of the data packets to the network is delayed, it is probable that overflow of the layer 2 transmission buffer occurs undesirably. In addition, as an upper limit of a generation amount of the data packets, a window size that is notified from the reception device to the transmission device is used. The window size is determined based on the free space of the reception buffer of the reception device. That is, even when the generation amount of the data packets is kept to be the window size or less, it is probable that overflow of the layer 2 transmission buffer occurs undesirably.
In the communication using the TCP, for example, overflow of the layer 2 transmission buffer occurs in the following case. FIGS. 1A, 1B, and 1C are diagrams illustrating a problem of a communication system in a related art. Here, a case is described as an example, in which the transmission side of a data packet corresponds to a communication terminal, and the transmission side of an ACK packet for the data packet corresponds to a base station. The communication terminal and the base station are coupled to each other through a wireless network.
For example, as illustrated in FIG. 1A, when the communication between the communication terminal and the base station is cut off momentarily because the communication terminal is temporarily out of coverage such as behind a building, ACK packets that are to be delivered to the communication terminal reside in a layer 2 transmission buffer B of the base station. In addition, since the communication terminal is not allowed to transmit a data packet to the network, the data packets reside in a layer 2 transmission buffer A of the communication terminal.
After that, as illustrated in FIG. 1B, when the communication is recovered, a large number of ACK packets that have been retained in the layer 2 transmission buffer B is burst-transmitted to the communication terminal at once.
Since the communication terminal generates a new data packet each time an ACK packet is received, a large number of data packets are burst-generated and flow into the layer 2 transmission buffer A at once when the large number of ACK packets have been burst-received in the communication terminal as illustrated in FIG. 1C. Therefore, when transmission of the data packets to the network is delayed due to burst-generation of the large number of data packets, the overflow occurs in the layer 2 transmission buffer A.